/*
 * @Descripttion: 远程服务调用rpc中间件
 * @version: 
 * @Author: turingchang
 * @Date: 2020-08-24 10:12:26
 * @LastEditors: turingchang
 * @LastEditTime: 2020-08-24 23:27:34
 */

module.exports =(options, app) =>{  
    return async function xrpc(ctx, next){
        try{
            await init(ctx);    
        }catch(err){
            ctx.outError(null,null,ctx.app.enums.response_code_enum.server_error); 
        }            
        await next();
    }
    
    async function init(ctx){
        if(options.enable ===true){
            var server =app.hprose;        
            //暴露函数供远程调用
            server.add(app.controller.test.test);
            await app.hprose.handle(ctx.req, ctx.res);
            //推送服务使用->https://github.com/hprose/hprose-nodejs/wiki/%E6%8E%A8%E9%80%81%E6%9C%8D%E5%8A%A1
        }        
    }

}